1 research outputs found

    FPGA Accelerators on Heterogeneous Systems: An Approach Using High Level Synthesis

    Get PDF
    La evoluci贸n de las FPGAs como dispositivos para el procesamiento con alta eficiencia energ茅tica y baja latencia de control, comparada con dispositivos como las CPUs y las GPUs, las han hecho atractivas en el 谩mbito de la computaci贸n de alto rendimiento (HPC).A pesar de las inumerables ventajas de las FPGAs, su inclusi贸n en HPC presenta varios retos. El primero, la complejidad que supone la programaci贸n de las FPGAs comparada con dispositivos como las CPUs y las GPUs. Segundo, el tiempo de desarrollo es alto debido al proceso de s铆ntesis del hardware. Y tercero, trabajar con m谩s arquitecturas en HPC requiere el manejo y la sintonizaci贸n de los detalles de cada dispositivo, lo que a帽ade complejidad.Esta tesis aborda estos 3 problemas en diferentes niveles con el objetivo de mejorar y facilitar la adopci贸n de las FPGAs usando la s铆ntesis de alto nivel(HLS) en sistemas HPC.En un nivel pr贸ximo al hardware, en esta tesis se desarrolla un modelo anal铆tico para las aplicaciones limitadas en memoria, que es una situaci贸n com煤n en aplicaciones de HPC. El modelo, desarrollado para kernels programados usando HLS, puede predecir el tiempo de ejecuci贸n con alta precisi贸n y buena adaptabilidad ante cambios en la tecnolog铆a de la memoria, como las DDR4 y HBM2, y en las variaciones en la frecuencia del kernel. Esta soluci贸n puede aumentar potencialmente la productividad de las personas que programan, reduciendo el tiempo de desarrollo y optimizaci贸n de las aplicaciones.Entender los detalles de bajo nivel puede ser complejo para las programadoras promedio, y el desempe帽o de las aplicaciones para FPGA a煤n requiere un alto nivel en las habilidades de programaci贸n. Por ello, nuestra segunda propuesta est谩 enfocada en la extensi贸n de las bibliotecas con una propuesta para c贸mputo en visi贸n artificial que sea portable entre diferentes fabricantes de FPGAs. La biblioteca se ha dise帽ado basada en templates, lo que permite una biblioteca que da flexibilidad a la generaci贸n del hardware y oculta decisiones de dise帽o cr铆ticas como la comunicaci贸n entre nodos, el modelo de concurrencia, y la integraci贸n de las aplicaciones en el sistema heterog茅neo para facilitar el desarrollo de grafos de visi贸n artificial que pueden ser complejos.Finalmente, en el runtime del host del sistema heterog茅neo, hemos integrado la FPGA para usarla de forma trasparente como un dispositivo acelerador para la co-ejecuci贸n en sistemas heterog茅neos. Hemos hecho una serie propuestas de altonivel de abstracci贸n que abarca los mecanismos de sincronizaci贸n y pol铆ticas de balanceo en un sistema altamente heterog茅neo compuesto por una CPU, una GPU y una FPGA. Se presentan los principales retos que han inspirado esta investigaci贸n y los beneficios de la inclusi贸n de una FPGA en rendimiento y energ铆a.En conclusi贸n, esta tesis contribuye a la adopci贸n de las FPGAs para entornos HPC, aportando soluciones que ayudan a reducir el tiempo de desarrollo y mejoran el desempe帽o y la eficiencia energ茅tica del sistema.---------------------------------------------The emergence of FPGAs in the High-Performance Computing domain is arising thanks to their promise of better energy efficiency and low control latency, compared with other devices such as CPUs or GPUs.Albeit these benefits, their complete inclusion into HPC systems still faces several challenges. First, FPGA complexity means its programming more difficult compared to devices such as CPU and GPU. Second, the development time is longer due to the required synthesis effort. And third, working with multiple devices increments the details that should be managed and increase hardware complexity.This thesis tackles these 3 problems at different stack levels to improve and to make easier the adoption of FPGAs using High-Level Synthesis on HPC systems. At a close to the hardware level, this thesis contributes with a new analytical model for memory-bound applications, an usual situation for HPC applications. The model for HLS kernels can anticipate application performance before place and route, reducing the design development time. Our results show a high precision and adaptable model for external memory technologies such as DDR4 and HBM2, and kernel frequency changes. This solution potentially increases productivity, reducing application development time.Understanding low-level implementation details is difficult for average programmers, and the development of FPGA applications still requires high proficiency program- ming skills. For this reason, the second proposal is focused on the extension of a computer vision library to be portable among two of the main FPGA vendors. The template-based library allows hardware flexibility and hides design decisions such as the communication among nodes, the concurrency programming model, and the application鈥檚 integration in the heterogeneous system, to develop complex vision graphs easily.Finally, we have transparently integrated the FPGA in a high level framework for co-execution with other devices. We propose a set of high level abstractions covering synchronization mechanism and load balancing policies in a highly heterogeneous system with CPU, GPU, and FPGA devices. We present the main challenges that inspired this research and the benefits of the FPGA use demonstrating performance and energy improvements.<br /
    corecore